Financial optimization system and method

ABSTRACT

An improved investment optimizing system and method. Once an investor or investment advisor determines the appropriate asset allocation and that there are both taxable accounts and tax-deferred or tax-free investment accounts, the invention will optimize/maximize the investor&#39;s ending after-tax asset accumulation, which is the objective of all investors. This is accomplished by allocating the chosen investment vehicles between the taxable and tax-deferred accounts in an optimum way. The invention runs on a computer system and searches for an allocation which results in a maximal return. Intelligent heuristics measure increased performance based on different asset allocations.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of application Ser. No. 11/928,945, filed on Oct. 30, 2007, which is a continuation of application Ser. No. 09/825,426, filed on Apr. 3, 2001, which is a continuation-in-part of application Ser. No. 09/346,602, filed Jul. 2, 1999 and claims benefit of U.S. Provisional Application Ser. No. 60/194,158, filed on Apr. 3, 2000, the entire contents of each of these applications being hereby incorporated by reference herein.

FIELD OF INVENTION

The present invention is directed towards financial analysis, and more particularly towards investment location optimization software.

BACKGROUND

Recent changes in the tax code and the ability of individuals to manage the investment of their retirement accounts have created many opportunities for maximizing growth over time, but have also introduced a new level of complexity into individual investment decision. Determining the best investments and strategy is a daunting task. A fundamental problem faced by all investors and financial advisors is which account—retirement or taxable—to put each investment in with their given asset allocation. Two factors strongly influence these decisions. First is the asset classes, such as stocks and bonds (and their sub categories) each which has various advantages and disadvantages, including expected return and risk. Second is the tax status of both the investor and the investment, which typically breaks down into taxable investment accounts and tax deferred investment accounts (e.g., 401Ks and IRAs). A decision must be made about how to distribute the asset classes between the taxable accounts and tax deferred retirement accounts. For example, if a split of 60% stock (or stock funds) and 40% bonds (or bond funds) make sense for an investor (it's an appropriate asset allocation), and this investor has $75,000 in an IRA and $25,000 in a taxable brokerage account, the question is investor has $75,000 in an IRA and $25,000 in a taxable brokerage account, the question is “where should the $60,000 stock and the $40,000 bond allocations be located for maximum long-term benefits?” Should he hold the stocks entirely in the retirement account or hold $25,000 in the taxable account and $35,000 in the IRA? The present investment addresses and optimizes this question.

Because of the different income and growth characteristics of investments in the various asset classes and the different ways and rates at which they are taxed, and by whom (Federal, state, local) the decision about which account to put each asset class (investment) has a very significant impact on the after-tax investment accumulation over time. Financial advisors have been forced to “optimize” as best they could by applying their knowledge of each investments' characteristics and knowledge of the tax laws to approximate what they thought would be the highest after tax accumulation for the target investment horizon. The process is very much a “seat of the pants” exercise and the outcome depends on the advisor's level of knowledge and their ability to mentally integrate and process a set of highly complex variables.

As with any uncertain process, advisors and experts disagree upon the best strategy for investment. An article by Venessa O'Connell in the Wall Street Journal (Capital-Gains Tax Cuts Mean It's Time To Review Your Tax-Deferred Strategy, WSJ Aug. 29, 1997 page C1) stated that the question of whether to keep stocks or bonds in tax-deferred accounts has been debated among the wealthy for years. The article further went on to quote Harold Evensky, a highly respected financial advisor at Evensky, Brown & Katz in Florida, who recommended that high-income investors keep stocks in taxable accounts and favor corporate bonds in tax-deferred accounts. However, this general advice may not prove optimal, as will be shown below.

While experts disagree on even the basic strategies, the typical investor often doesn't even address the issue. Financial advisors often spend too little time on the issue of investment location, thereby ending up with less than optimal investment strategies. More often than not individual investors are oblivious of the issue to their financial detriment.

Several tools and systems attempt to address this problem. Spreadsheets can be constructed to “run the numbers”, but the outcome depends on the input into the system. By changing input assumptions it is possible to test different scenarios to see which combination gave the best result. While this is an improvement over the “seat of the pants” method, it is not a true optimizer.

Similarly, commercial calculators may become available Which obviate the need to construct spread sheets, but perform essentially the same function as the spreadsheets. The commercial calculators calculate accumulation amounts over time based on a set of assumptions. By changing the assumptions, the user is able to test different sets of assumptions (strategies). This is an incredibly time consuming and burdensome task given the number of variables and the possible number of combinations. A large number of variables must be considered with a huge search space. For example, 80 variables will result in over 14 billion possible combinations. None of the above approaches will yield an optimum solution.

There are several other approaches for developing an optimization solution for this complex problem with varying degrees of success. A brute force approach is simply to try every possible combination and calculate the best result. This can work fine, but with real world problems, the number of combinations is so large that this approach is not practical given a reasonable time scale.

Numerical calculator optimization techniques have been used to attempt to solve optimization problems and are now available in most advanced spreadsheet programs. But these techniques have limitations. For example, they lend themselves to optimizing independent numeric inputs from which a desired output is calculated. They are less capable of optimizing problems involving sequencing or scheduling. Also, they are “exploitation” and not “exploration” techniques. This means that given a reasonable starting solution (a set of input values), the numeric optimization will converge to a near optimal solution. However, they are not capable of exploring areas of space where good solutions exist. This is because numerical optimization techniques can often get trapped in local optimal solutions. Another limitation of numerical optimization techniques is that they are not suitable if the outcome cannot be explicitly calculated. For example, When the outcome is a subjective assessment by an expert or an observed performance.

Another approach is the use linear program techniques. These can work well when optimizing the numeric parameters of a recipe type problem. However, with the particular type of optimization problem related to investment account selection, it becomes very difficult to represent the problem in terms of linear numeric parameters. Also, as the number of parameters and equations increase, the calculations and solution surface become extremely complex.

Further, false optimum solutions are prevalent, with no clear indication of recognizing the false solutions.

None of these approaches help to find an optimal solution in a reasonable amount of time (both real time and computer time).

SUMMARY OF THE INVENTION

The present invention comprises an investment location optimizer. Once an investor or investment advisor determines the appropriate asset allocation (investment mix) and that there are both taxable accounts and tax-deferred investment accounts, the invention will optimize/maximize the investor's ending after-tax asset accumulation, which is the objective of all investors. This is accomplished by allocating the chosen investment vehicles between the taxable and tax-deferred accounts in an optimum way.

The present invention includes a system for determining an investment strategy for an entity with assets in taxable and tax-free accounts. It includes an account information input component, to accept information regarding the assets in the taxable and tax-free accounts for the entity; an investment selection input component, to accept information regarding, a plurality of investments, including an indication of a percentage amount to invest in each of the plurality of investments; an account amount selection component, to select an amount to invest from the taxable accounts and tax-free accounts in the plurality of investments which substantially matches the indication of a percentage amount to invest in each of the plurality of investments; and a time horizon input component, to accept an indication of a time horizon. A return on investment calculation component, then calculates a return on investment for the entity based on the information regarding the assets, the information regarding a plurality of investments, the indication of a percentage amount, the selected amount to invest from the taxable and the tax-free accounts, and the indication of a time horizon. The account amount selection component selects an amount from the taxable and tax-free accounts in order to produce a maximal return on investment for the entity at the time horizon.

In one embodiment, the account amount selection component randomly selects amounts from the taxable and tax-free accounts, and the return investment calculation component calculates a return for the entity based on the randomly selected amounts. The steps of randomly selecting amounts from the taxable and tax-free accounts and calculating a return are performed a plurality of times, and the system outputs selected amounts from the taxable and tax-free accounts which produce a maximal return.

In another embodiment, the account amount selection component selects an amount from the taxable and tax-free accounts using Genetic Algorithms (GA) in order to produce a maximal return on investment for the entity at the time horizon. This embodiment includes a chromosome structure, for use with the Genetic Algorithms, wherein the chromosome structure includes a plurality of values, each value being an indication of an amount from the tax-free accounts to invest in a selected one of the plurality of investments.

Advantages of the present invention include optimization of investment outcome when there are two basic kinds of investor accounts: 1) taxable accounts and 2) tax-free accounts such as Roth accounts. In addition there are other kinds of investor accounts with their own unique tax characteristics that can be incorporated into the present invention. This would provide a broader and far more complex selection optimization.

The present invention rose from the need to help make optimal decisions for clients and investors. The total asset accumulation in an investor's portfolio over time will vary dramatically depending on the decision of which account to invest in which asset class. Through the use of the present invention, the inventors are able to increase the terminal portfolio value typically between 5 and 40% with no increase in risk to the investor. The risk lies with the asset allocation and specific investments selection not where they are located. All relevant variables have been incorporated into the present invention in order to truly optimize the end period accumulations.

The illustrative embodiment of the present invention comprises a hybrid GA-Heuristic search strategy. The hybrid approach is reflected both in the implementation of the GAs and the methodology of applying it to solve problems.

In broad terms, the following are the five steps to determine the optimum investment portfolio for each client, as outlined in FIG. 1. Fact gathering 20 includes setting goals, identifying risk tolerance, making retirement projections, agreeing on the appropriate time horizons and identifying the available investments. The next step is Asset. Allocation 22. Studies show that 50 to 90% of total pre-tax returns are determined by asset allocation. Given the results of the fact finding phase 20, determining the appropriate mix between stocks (domestic, international, small cap, large cap), bonds (short-term, long-term, domestic, international, tax exempt), and cash which makes the most sense for them is among the most important decisions in the investment process.

In the step of Investment Selection 24, investors choose among the available investment options in each asset category to fund the asset allocation chosen in Step 22. The investor will select from the available mutual funds or individual stock, bonds and money market instruments. Then there is Account Selection 26, which includes determining which accounts (retirement/tax free, non-retirement/taxable, children, trusts, etc.) are best suited for the investments and asset allocation determined in Steps 22 and 24. These accounts are all taxed differently. Accordingly, this decision is primarily tax motivated with the objective of maximizing the after-tax accumulations over time.

Finally there is Monitoring 28. After implementation the ongoing monitoring of the portfolio is essential as circumstances change.

With regard to Step 26 Account Selection, there is no standard system or formula for allocation. It is here that investors and financial advisors need to make the complex decisions about in which account to place which investment. There are a great number of variables which impact the account selection decision. They include the time horizon, current and future tax brackets (both state and federal), current and future capital gains rates, relative spread between bonds (municipals, federal, corporate), portfolio turnover, investment yields and appreciation rates, and relative proportion of overall portfolio in account types (retirement, non-retirement, children, trusts).

The illustrative embodiment of the present invention simultaneously takes into account the following variables: Federal taxes including income taxes (8 brackets) and capital gains taxes (3 brackets); States taxes including income and capital gains taxes (different in all 50 states and many have multiple brackets); Investment characteristics of numerous asset classes which are defined in terms of income characteristics (including taxable, tax-exempt, growth characteristics and turnover); time horizon (in years); before and after liquidation values; proportion of assets in taxable and tax-free accounts; and relevant investment mix.

Advantages of the present invention include a marked level of improvement in outcome from the application of the present invention. Typically the improvement is in the 5-40% range over 20 years. This is significant, and remember, it is a complete freebie. This is, the end result of the investment process is improved significantly, with no increase in risk as it is the same investments just in better locations from a tax stand point. And, as previously discussed, the means of achieving an optimum solution is not available by any other means.

BRIEF DESCRIPTIONS OF THE DRAWINGS

The foregoing and other features and advantages of the present invention will be more fully understood from the following detailed description of illustrative embodiments, taken in conjunction with the accompanying drawings in which:

FIG. 1 is an outline of steps in an investment process;

FIG. 2 is a block flow diagram generally showing information inflow and outflow to a system according to the present invention;

FIG. 3 is a block diagram showing a more detailed flow of information as compared to FIG. 2;

FIG. 4 is a block diagram showing an investment optimizing component according to one embodiment of the present invention;

FIG. 5 is a block diagram of a computer system according to one embodiment of the present invention;

FIG. 6 is a user interface input screen for entering entity data according to an illustrative embodiment of the present invention;

FIG. 7 is a user interface input screen for entering investment data according to an illustrative embodiment of the present invention; and

FIG. 8 is a user interface output screen for displaying results according to an illustrative embodiment of the present invention.

DETAILED DESCRIPTION

FIG. 1 outlines steps used in planning an investment strategy for an entity, such as a person. Fact gathering 20 includes setting goals, identifying risk tolerance, making retirement projections, agreeing on the appropriate time horizons and identifying the available investments. The next step is Asset Allocation 22. Studies show that 50 to 90% of total pre-tax returns are determined by asset allocation. Given the results of the fact finding phase 20, determining the appropriate mix between stocks (domestic, international, small cap, large cap), bonds (short-term, long-term, domestic, international, tax exempt), and cash which makes the most sense for them is among the most important decisions in the investment process.

In the step of Investment Selection 24, investors choose among the available investment options in each asset category to fund the asset allocation chosen in Step 22. The investor will select from the available mutual funds or individual stock, bonds and money market instruments. Then there is Account Selection 26, which includes determining which accounts (retirement/tax deferred, non-retirement/taxable, children, trusts, etc.) are best suited for the investments and asset allocation determined in Steps 22 and 24. This decision is primarily tax motivated with the objective of maximizing the after tax accumulations over time.

Finally there is Monitoring 28. After implementation the ongoing monitoring of the portfolio is valuable as circumstances change.

Focusing on Step 26 Account Selection, there is no standard system or formula for allocating investment funds from taxable and tax-deferred accounts. It is here that investors and financial advisors need to make the complex decisions about in which account to place which investment. There are a great number of variables which impact the account selection decision. They include the time horizon, current and future tax brackets (both state and federal), current and future capital gains rates, relative spread between bonds (municipals, federal, corporate), portfolio turnover, investment yields and appreciation rates, and relative proportion of overall portfolio in account types (retirement, non-retirement, children, trusts).

FIG. 2 illustrates an asset allocation optimizer 36 according to the present invention. An illustrative embodiment of the present invention starts with a predetermined Asset Allocation 30. This includes taxable assets and accounts 32 and tax deferred assets and accounts 34. Typically, these asset allocations 30 are pre-divided into various categories. For example, an entity (such as a person or business entity) may have funds in a taxable account, where taxes are due each year; and a tax-deferred, where taxes on the principal and/or interest are not due until the funds are withdrawn, or the individual reaches a certain age. The types of accounts for which the present invention is applicable include Taxable, IRA, 401K, Keough, Roth IRAs; trust accounts; foundations; corporate charitable trust accounts; children's accounts.

While these funds are in different accounts 32 and 34, they may be invested in different investments. A feature of the present invention is determining which accounts to use for each investment that results in a maximum after-tax accumulation.

These predetermined asset allocations 30 are provided as input information into an investment location Optimizer 36. Other information input to the investment location Optimizer 36 includes investment characteristics 38. As detailed in FIG. 3, investment characteristics 38 include details about the various selected or potential investments, including ordinary income, yield, percent tax, long term capital gain distributions, unrealized appreciation, and investment turnover. This investment characteristic information 38 is specific to each investment. Such information may be stored in a separate database, or entered specifically for a specific entity.

Other information entered into the investment location Optimizer 36 includes tax rates and time horizon information 40 which generally is peculiar to the individual entity. Such individual information 40 includes the federal income tax rate, state income tax rate, capital gains tax, tax deferred investments (accounts) and total investments for the individual. Other information includes the time horizon which is the period of which to determine the maximal growth. The investment location Optimizer 36, FIG. 2, then determines an optimized solution which is an output 42 in the form of an optimized accumulation 44. This information is similar to the original investment location information 30, except that now the amount of taxable investment accounts 46 and tax deferred investment accounts 48 are selected to produce an optimal result at the end of the time horizon. Other information, including the projected investment value at the time horizon, and percentage improvement, may be output, as will be discussed below.

The investment location optimizer 36, FIG. 4, includes two major components in the illustrative embodiment of the present invention. An account amount selection component 50 receives as input the predetermined investment location 30 and works to adjust the proper investment location to produce an optimal solution. Another component is the return on investment calculating component 52. This return on investment calculating component 52 performs calculations to determine the value of the various investment over the time horizon. Therefore this return on investment calculating component 52 accepts input of the investment characteristics 38 as well as information from the account amount selection component 50 as shown by arrow 54. The return on the investment calculating component 52 performs standard calculations for determining growth based on interest, turnover, mean variance analysis, and other features of an investment, including the tax characteristics. The information returned by the return on investment calculating component 52 is provided as feedback 56 to the account amount selection component 50, thereby allowing it to receive feedback on various optimizations and determine an optimal solution.

The output 42 from the account amount selection component 50 is in the form of the optimized investment locations which are returned to the user of the system.

A computer system for running an embodiment the present invention is shown in FIG. 5. A user may interact with the system using a workstation or other display, to input information and run the system. A computer system including a user interface application interacts with the user, and stores information regarding accounts and assets in a database. The optimization system interacts with the database to retrieve and store information. The optimization system also may interact directly to the user, either directly or through the user interface application or system.

One embodiment of the asset allocation optimizer 36 uses Monte Carlo simulation to determine an optimized allocation. The account amount selection component 50 generates ranges of percentages of taxable vs. tax-deferred accounts to invest in particular investments. Then the system randomly selects percentages within those ranges, whereupon the return on investment calculating component 52 determines the results based on the randomly selected percentages. This cycle is repeated many times, with the system remembering the best result. The selection of random percentages can be adjusted depending upon the selection process, for example random selections within the range can be uniform (pseudo-random), or skewed, such as logarithmic over the range, or over a normal distribution curve.

An advantage of the Monte Carlo technique is that it can also be applied to variable yields for various investments. For example, an investment stock may have a projected yield, but more likely it will vary over time. The present invention allows investment yield (and other parameters) to be entered as a range, instead of as a specific return. This range can be defined so that random values selected within the range are even distribution, bell curve, stepped, skewed, etc. By using Monte Carlo techniques to factor in volatility of one or more investments and generate realistic samples of the results, a better optimized allocation is produced. Further, results can include a “best case” and “worst case” result, which allows for more prudent allocation decisions.

The Monte Carlo technique may be used alone, or in combination with other optimization techniques, including the GA (Genetic Algorithm) embodiment described below. For example, the Monte Carlo technique is useful for selecting randomly distributed samples used to “seed” the gene pool for GA fitness and cross-breeding evaluations. In other words, to improve the account selection starting point of the present invention.

The illustrative embodiment the present invention uses Genetic Algorithms (GA) to help select an optimized investment allocation. GAs are techniques for solving optimization problems inspired by the theory of evolution and biogenetics. These algorithms are useful for exploring large search spaces for optimal or near optimal solutions. The basics of a genetic algorithm are:

1. Representing possible solutions to problems as a string of parameters (numbers). This string is called a chromosome and the parameters within it are called genes. 2. Randomly creating a number (generation) of these chromosomes. 3. Calculating the effectiveness of each chromosome as a solution to the problem then ranking the chromosomes in order of effectiveness (fitness to survive). 4. Creating a new generation of chromosomes by randomly selecting pairs of chromosomes (parents) and mixing their genes to form child chromosomes. This process is called ‘crossover’ and the selection of the parents is biased to more effective (fit) parents. Another variation called ‘mutation’ involves randomly changing one or more genes within a chromosome. Mutation helps GA systems to avoid false solutions and too-narrow convergence on one area of the search space. 5. Repeating steps 3 to 4 for a number of cycles (generations).

The randomness of the above process allows the effective exploration of the space of solutions. While the selection of effective solutions (chromosomes) and the mixing of their genes allows the accumulation of good features from partially good solutions. As a result, genetic algorithms can explore large domains and converge on good solutions relatively quickly. GA's also give a powerful trade off between the time taken to reach a solution and the quality of the solution.

The two basic steps in developing solutions using GA's are an appropriate representation of the problem and a method of assessing the effectiveness (cost) of a solution. The easiest representation of a problem for GA implementation is as a string of numbers. Each number is represented by a gene that can be constrained by the minimum and maximum values it can take. A cost function is defined which derives a value for the cost of the solution from a given set of gene values. In such a representation, each gene represents a different numeric parameter of the solution. Alternatively, a chromosome can be used to represent a sequence of jobs which requires optimization. In such a case the number of genes will equal the number of jobs to be sequenced and the value of each gene will be unique and range from 1 to the number of tasks.

The genetic structure used in the illustrative embodiments a single non-sequence chromosome, named TaxDeferred with a variable number of genes, ACTD (Asset Class Tax Deferred). Each asset class is represented as a gene containing the dollar value in tax deferred accounts on this chromosome. That is, the GA component generates values for the amount in tax deferred accounts for all asset classes, and the cost function written for this application computes both the amount in taxable accounts and the total value for that allocation to taxable and tax deferred accounts. There is applied a sum constraint which requires that the total tax deferred dollars in all genes must add up to the total tax deferred dollars specified by the user. The fitness is the measure of the value at the time horizon.

As previously mentioned, in the illustrative embodiment the initial chromosome is initialized to a set of values that represent the current value in tax deferred accounts in order to provide a reasonable starting point for the optimization. By utilizing current values, the illustrative embodiment converges to an optimal solution within one generation (initial chromosome “pool” created by mutation, and a generation “pool” including crossover). Experiments using two and seven generations showed some improvement over using one generation, with a tradeoff in increased time for computation. Multiple generations may be used for incremental improvements to an optimal solution, or if the current values are not already “optimized” in that the accounts were selected by a naive investor. Therefore the present invention works both for experienced investors and, advisors as well as naïve users and may be adjusted accordingly for specific investor types.

The illustrative embodiment of the present invention is implemented using Microsoft Access 97 and XPERTRULE KBS by Attar Software. However, any database could be used for this purpose as could any heuristic problem solving algorithm. The illustrative embodiment runs on a general purpose computer such as an Intel® based processor running a standard operating system such as Microsoft Windows® or Linux. However, the present invention can run on any type of computer system, mainframes to palm computers, or on calculators such as financial calculators. Further, the present invention may be available locally or remotely to users over a network based system such as the internet or modern connections. For example, users can access a web site (either generally or with a personal account number), enter information and run the optimizing system. Users can also store their personal information in secure accounts at the web site.

A full description of the specific GA system used to implement the illustrative embodiment can be found the XPERTRULE Reference Manual Release 3.63, as provided by Attar Software Limited, and is fully incorporated herein by reference. Software applications fall into two categories; analysis and synthesis. Analysis applications are represented by the traditional input/output model of data processing whereby input data is processed procedurally or heuristically to generate the output data. Synthesis applications involve the reverse process of deriving the input data required to generate certain desired outputs. This is a difficult task since there are, in most cases, no formulae or rules to derive inputs from outputs. This is further complicated by constraints imposed on the acceptable values of input data. Optimization is the process of deriving, values of input data that satisfy constraints and which results in the desired output data.

The GA component of the illustrative embodiment first computes the portfolio value Oven the current location of assets between taxable and tax deferred accounts, and stores this for comparison to the final value determined to be best by the cost function.

The GA component then initializes the GA to a set of values that represent the current value in tax deferred accounts in order to provide a reasonable starting point for the optimization. This is not necessary to reach an optimal value, but it seems to speed up the process considerably. In the illustrative embodiment, a first iteration (or pool) of chromosomes is performed for fifty iterations. The iterations differ through random changes (mutations) in the chromosome. A generation is then created, using random crossovers with another set of 50 iterations. This cycle may be repeated as desired.

Now, given a particular set of values of tax deferred dollars in each asset class, the value function determines the total value of the portfolio. If this value is better than previous values, then it is retained as the best solution so far, otherwise, it is discarded.

Computations used by the value function in the illustrative embodiment to reach its conclusions are listed in Appendix A, including valuation functions to compute the future value of various investments including stocks and bonds. For the illustrative embodiment, the GA component writes its conclusion to a file.

FIG. 6 illustrates a user interface front end for use with an illustrative embodiment of the present invention. As shown in the input window 64, information including an account identification, and a business or individual indication are entered along with the first and last name and age of the entity. This information may be saved in a database to allow future recall and changes. Other information which may be used in calculations or simply for data base entry are also entered. Allocation data including the total assets available and the total assets in a tax deferred account are input along with the (combined or separate) federal and state tax rate for the individual. An optimization method may be entered including after liquidation are also entered. Finally, the time horizon in years is also entered on this screen 64.

Clicking on the button marked ‘Asset Class’ brings up the following form 66 as shown in FIG. 7, on which the Clients' various assets are entered along with the current Taxable/Tax Deferred allocation. There are possibly many user-defined asset classes which generally fall into one of two types: Stock or Bond. For each asset class, the user may enter or select the following data: percent taxed by federal and state governments; ordinary income (dividend) percent; yield percent for bonds; long term capital growth distribution; anticipated unrealized appreciation; percent and amount to be allocated to each asset class; percent and amount currently allocated to taxable and tax deferred accounts; average turnover time; and capital gains tax rate.

Also entered at this stage is a preliminary allocation between the various investments which is shown by label 68. Here, there is a percent allocation between the various investments which will equal approximately 100%. The illustrative embodiment will also calculate the investment amount based on the total assets available based on the percentage as shown by label 70. Alternatively, the amount entered may be entered in monetary units wherein the percentage will be calculated automatically. Finally a current allocation between taxable and tax deferred accounts is entered 72. This provides a starting point for the optimization process and further will provide an ability to view how much the optimization has provided for.

When the user clicks the “Optimize” button on the user input or edit screen 64 FIG. 6, the appropriate data is sent to the optimizing system. In the illustrative embodiment, data is written to an ASCII text file by the database, and are subsequently read by the optimizing system. In subsequent versions, OLE 2 or other protocols may be used for data communication. Prior to optimization, some calculations are done to prepare the data for optimization. This code, written using XPERTRULE KBS, is shown in Appendix A.

FIG. 8 shows the result screen 74 which presents the output from the optimization process. As shown by label 76 for the present example, the investment allocation optimization system was able to provide an 11% improvement over the current strategy with a time horizon extending out to March of 2039. As output by the system, the data as shown by label 78 is a new allocation between the taxable account and tax deferred account which provides more value at the time horizon. In performing these calculations, the optimization system maintains the limits as provided by the account data, for example if an entity wants to invest 25% in a particular investment, then there is not enough assets available in a tax deferred account to fully fund 25% then assets will be distributed from the taxable account to make up the difference. An improvement upon this strategy, is to provide suggestions to the entity to provide more funds available in their tax deferred account should that person's tax situation allow for such a move.

The illustrative embodiment of the present invention was tested with data to check the hypothesis of Evensky, as discussed in the previously cited Wall Street Journal article. Evensky recommended keeping stocks in taxable accounts and bonds in tax-deferred accounts. A scenario was run using data of $200,000 total assets, with $100,000 in tax-deferred accounts. The federal tax rate was 42% and state tax rate 6%, with a horizon of forty years. Two investments were entered, a bond investment returning 6%, and a stock investment returning 13%. The scenario was started with all the tax-deferred assets (50%) in the bond investment, and all the taxable assets (50%) in the stock investment, thereby following Evensky's advice. The results from running the system was very different. The illustrative embodiment instead computed that putting all the taxable assets in the bond investment, and all the tax-deferred assets in the stock investment would results in a growth in value to $7,281,432, which was a 94% improvement over the initial allocation. Therefore, for the example tested here, Evensky's hypothesis is clearly not the best investment strategy.

The present invention includes additions and enhancements which provide more utility for investors and analysts. These additions include different optimization techniques and algorithms, including rule-based expert systems, neural net processing to recognize patterns and learn optimization techniques, fuzzy logic, linear programming, exhaustive search, and various combinations thereof.

Further, different types of accounts may easily be added to the present invention, including Roth IRA, annuities, various trusts, 401k, custodial accounts, 529 investment plans, corporate accounts, etc. Specific investment or class of investments characteristics may be added, for example the system can optimize the type of bond:—i.e., if bonds are best suited for retirement account, then use 6% yielding corporate bonds, if best suited for taxable account and tax bracket ≧28%, use 4% municipal bonds.

Details for other types of accounts include:

ROTH IRA—investments accumulate within a ROTH (popular retirement account) tax-free and assuming certain rules are met (i.e. no withdrawals allowed prior to age 59.5 without penalty) distributions come out tax-free. Furthermore unlike most other retirement accounts, there is no required distribution beginning date of age 70.5. As a result the system can determine whether makes sense to put an investor's highest total returning investment in a ROTH to enjoy maximum long-term accumulation. ANNUITIES—investments within an annuity accumulate on a tax-deferred basis like most retirement accounts. The major differences are the required distributions begin later (age 85 or 90 versus 70.5) and only the earnings are taxed as ordinary income as opposed to the entire distribution being taxable with normal retirement accounts. An annuitant recovers tax-free the portion of his payouts that represent his original purchase price on the annuity. System inputs for this type of account include the cost of the annuity and the anticipated beginning payout date. For example an investor may have purchased an annuity for $10,000 (input) and its value is currently $14,000 (input) with an anticipated beginning payout date in 7 years (input). Depending upon which investment is optimally located in the annuity it will have accumulated to a certain amount by the time of the first distribution. If thr example the value of the annuity at that time were $50,000 then roughly 80% ($40,000 earnings as a % of value) would be taxable.

Note that there is a limit as to which investments are available within any particular annuity. Individual stocks can not be purchased by law in an annuity. Each annuity product has mutual fund-like sub accounts. Some have a large number to pick from and others a very limited number. Accordingly as another input for all investments is a block put on any investment not available within any annuity the investor has. The system would not consider that investment as being available for that annuity in the optimization process.

NON-DEDUCTIBLE IRAs & OTHER POST-TAX RETIREMENT ACCOUNTS—are taxed in roughly the same way as annuities except they are required to begin distributions at age 70.5 (versus 85 for annuities). An additional input would then be the investor's non deductible contribution in this type of account. Distributions at 70.5 (per preprogrammed IRS tables) have a tax-free return of principal component to them. TRUSTS—an investor may consider investments within a trust part of the overall family portfolio. Trusts may be taxed differently than other taxable accounts in an overall portfolio. For example, the top marginal federal tax rate of 39.6% is reached at roughly $280,000 for individuals with the first $30,000 only being taxed at 15%. For most trusts, 39.6% is reached at roughly $10,000 (capital gains taxes may be the same rate for either (currently 20%)). Accordingly a trust might be in a much higher tax bracket than an individual for ordinary income items and a high ordinary income investment like a corporate bond may be better located in an individual's account rather than a trust. Accordingly, an additional input for each trust is how it is taxed.

Note that appreciation of securities in trusts may never be taxed under certain circumstance. For example a charity may get the assets at some future date. An additional input would shut down the related capital gains tax on investments within that trust.

CHILDREN'S ACCOUNTS—an investor may consider investments taxable to a child as part of the overall family portfolio. Accordingly, the tax rates applicable to other family members accounts is an additional input. A child may be subject to a different tax rate for both ordinary taxes as well as capital gains taxes. EDUCATIONAL ACCOUNTS—may be taxed differently depending upon which IRS allowed plan an investor uses. Some plans are tax deferred until distributions are made and then taxed entirely at the recipients ordinary tax rates. CORPORATE ACCOUNTS—investments are sometimes located inside controlled corporations and are then subject to corporate tax rates.

Other features are easily integrated, for example a foreign tax credit feature may be added, wherein the foreign tax credit can only be taken in taxable accounts as an additional input.

Foreign countries often assess taxes on investment income of US citizens. To mitigate the inequity of double taxation the federal government allows a credit on an individual's tax return for foreign taxes paid in a taxable account. There is no such credit given in retirement accounts. Accordingly, an input to help determine the optimal location of investments is the dollar amount of the expected credit for all foreign investments. Alternatively the input is expressed as a % of the value of the investment. The system then factors in the tax savings of the credit if held in a taxable account. This would obviously impact the long-term accumulations that the system is optimizing. Whether it is worthwhile to forego the credit and hold the investment in a retirement account would be a function of the many other variables input.

Another embodiment of the present invention is for initial optimization for the type of bond. One embodiment of the present invention takes given investments and searches for the best account locations to maximize long-term accumulations. However, the investments might change. An investor may have a corporate bond that pays 6% per year in interest. If it were held in a taxable account the interest would be taxed at the investor's marginal rate of tax. In a retirement account it would be taxed along with all other components (contributions, capital gains etc.) of the account with the marginal rate of tax applied to the amount withdrawn, possibly in many years at the investor's then marginal rate of tax. A tax-free municipal bond may be the effective equivalent to a top-rated corporate bond in terms of risk etc. with the only substantive difference being interest yield. Because of the tax-free nature of municipal bonds, municipalities are always able to pay less in interest than their taxable bond counterparts. Accordingly, if a bond is to be held in a taxable account, investors will calculate whether a tax-free municipal bond would yield more than a taxable corporate bond would after the taxes are paid. Typically investors in the highest tax brackets will use municipal bonds for their taxable accounts (no one ever holds municipals in their retirement accounts, as they are not tax-free there). Therefore, even though x amount in bonds may be a given for an investor, the type of bond chosen (taxable or tax-free) would normally be a function of its location (taxable account or retirement account) and the investors tax bracket.

If for example, an investor has committed to investing $10,000 in bonds and if held in a retirement account then a corporate bond will be purchased which will yield 6%, if the bonds are held in a taxable account then based on the investors tax bracket of 36% they will purchase a municipal bond paying 4% as 4% is greater than 3.84% which is the after-tax yield on a corporate bond for this investor (6% x (1-36%): If the investor's tax bracket was 15% then the corporate bond would be purchased regardless of where it is held as 5.1% (6% x (1-15%)) is greater than 4%.

An additional input for each bond is the taxable equivalent yield for each municipal bond (or bond fund) and the tax-free equivalent yield for each taxable bond. Alternatively the user simply inputs the general “spread” between taxable and tax-free bonds which the system applies to all bonds that are input. The system then optimizes the type of bond, calculating, based on a tax bracket input whether lower yielding tax-free municipal bonds would be better for a particular investor. In searching for the optimal location for the $10,000 in the bond example above, the system would use 6% when trying retirement accounts and 4% tax-free for taxable accounts. These will obviously impact long-term accumulation amounts and would also impact the optimal location of bonds.

The output from the system would then be different for bonds. Other investments will simply advise to keep the investment where it is or to sell all or part of it in its current location and purchase that amount in another account. A potential output with bonds for example might be to sell a corporate bond in a retirement account and then to buy a different but substantially equivalent investment—a municipal bond in a taxable account (or vice versa).

The system would typically shut down federal income taxes on municipal bonds. State taxability will be an additional input. Generally, municipals are taxable in the state of residence unless they are issued by that state and Federal bonds may be tax-free at the state level. A “check the box” input for federal and state taxability would be used.

Another embodiment of the present invention uses multiple time horizons. For example, most people do not take their retirement accounts all out at once but rather spread out their withdrawals over a number of years. For example, they may wait until the IRS requires distributions at age 70.5 and then withdraw based on IRS tables (i.e. ⅛th of account balance each year for the rest of their life). Alternatively, a ROTH IRA has no required beginning date and as a result, may be the last investment an investor may draw down. In either case this keeps the tax deferred compounding going for potentially many more years and as a result could impact which investments are best suited for the retirement accounts. Further, taxable accounts may also have different time horizons—for example an investor may be setting money aside for a child's education in 5 years. In a taxable account any appreciation on a stock is taxed when sold. Placing investments optimally is to a large extent dependent on the timing of taxation. Accordingly, if money from a college education account will be needed in 5 years it is wiser to put a buy and hold stock in another account that will not be needed for 30 years. This would significantly delay the capital gains tax on its sale. The time value of money of paying taxes 25 years later would obviously enhance overall family net worth.

New inputs provide the anticipated date (or dates with amounts or percentages of value) that each investment would be withdrawn. The endpoint that defines optimization for example might be the maximum value at death, which are preprogrammed by life expectancy tables, as adjusted by the user. For families that may have an estate tax, then the accumulation at death could be net of estate tax. Alternatively, for those who might run out of funds prior to death, optimization are defined as the maximum number of years that overall investments would last. Note that the time horizons may be quite lengthy. Investments may be passed to the next generation that may be named as beneficiary on a retirement account for example. Alternatively the investments may be in a trust for the benefit of a grandchild. Accordingly, there may be a wide disparity in the time horizon of a family's investment accounts that could have a material impact on the location of that family's investments.

Another embodiment of the present invention provides for crossover points. A user of the system might ask the question “how high a rate of return is necessary to justify moving a given investment: from one account to another?”. Often the highest total returning investment should be located in a retirement account but to move it from its taxable account might involve paying current capital gains taxes as the investment in question has gone up in value. The system can try different rates of return until it reached a different conclusion as to where an investment should be located. The output will state “At a rate of return above 11% stock XYZ should be sold and repurchased in the retirement account, at a rate of 11% or below it should remain where it is”. The user can then make the decision whether or not to move XYZ based upon their judgement as to the likelihood of XYZ earning 11%. This may be much easier for the user than predicting a precise rate of return on investments.

Similarly, there are other subjective inputs such as time horizon, as previously discussed. It may be difficult for the user to know how long the investments may be held prior to withdrawal. For example, there can be a tradeoff in some investments between paying tax along the way at favorable rates in a taxable account or letting them grow in a retirement account without tax interference for many years and then be taxed at unfavorable rates (there are no capital gains rates available in retirement accounts). Stocks may be a good example as the bulk of their return is from capital gains, which are taxed at a preferable rate of 20% when they are sold. Some investors may sell frequently and may be better off letting this higher potential earning investment grow in a tax deferred environment where compounding may be significant. The more frequent the sale and the further it is until retirement the more attractive holding the stock in the retirement account may be. In this case the system will try different holding periods and different sale frequencies. The output will state “If the holding period is greater than 7 years move the investment to the retirement account, 7 years or less leave it in the taxable account” or “if the stocks are to be sold any more than every 3 years, they should be held in a retirement account”.

There are other subjective inputs that the system can calculate crossover points for example—“How high could tax rates go up before taking advantage of low current capital gains rates by keeping stock investments in taxable accounts would be the better choice?”

Crossover points for more than one variable at a time is possible, but more involved. The system goes through its normal optimization process with Finite inputs. Then for the non-factual inputs, the system changes them until the conclusion changed (there might also be a graphical representation of the crossover points). This is then reported to the user who might then decide to change the input on that assumption. The system then goes on to the next subjective input. This iterative process continues until the user was satisfied that the optimal solution was achieved. For example—input 11% (best guess) for stock XYZ, system says leave it where it is in the taxable account, system then indicates through its crossover function that if return was greater than 11.8% it should be sold and repurchased in the retirement account. The user may be confident that the stock will earn at least 11.8% and will change the input for this investment accordingly. This moves the investment into the retirement account. Next the system address holding period for example, etc.

Other optimization thresholds and variations are available, include an age 70½ (minimum required distributions), post-retirement investment location optimization. Another optimization is crossover points for all the variables that trigger when one account is better than another. Another optimization is differing time horizons for various accounts. Also, different beneficiary designations on retirement accounts can be factored in, i.e., Roth IRAs distributions could be delayed beyond the owner's death.

Other features of the present invention include input and output of information in standardized formats, for example the Morningstar's or Standard and Poors etc. databases, allowing tie-ins for fund/individual security data such as past returns, turnover, dividend yield, etc. Support for databases and/or spreadsheets of optimized portfolio as well as current portfolio is helpful. Other support includes cash flow analysis, with integration of projected cash flow needs to determine time horizons for various investment accounts, and to integrate with existing software programs that calculate retirement projections or optimal investment mixes etc. Other features include a separate application which integrates into other standard systems, to extract the necessary information and produce results with minimal data entry.

Other features include estate sensitivity, with no taxation on appreciation if assets passed via an estate; gifting, with implications within family at different tax brackets, or to charity to escape taxation on appreciation; tax basis, with current tax basis and related tax bite to be factored in when determining optimal account location; and tax-loss deductibility, to be factored in if securities decline in value; different tax rates for different time periods; alternative minimum tax if applicable. Obviously, as tax laws change, new optimization features will become useful with the present invention. The software could also accommodate entirely different tax systems from other countries, along with exchange rates as necessary.

Other features include a “solve it” function, for example to determine what minimum rate of return is needed before stock should be in retirement account or any other variable in the program; simultaneous optimization of asset allocation with investment location; factoring in of ongoing cash inflows and outflows, a rebalancing feature, which ties in anticipated rebalancing needs with current optimizations; and a tax efficiency calculator, to determine for example how much greater of an investment return does Fund A need to offset its tax inefficiency when compared to Fund B.

The present invention also solves additional problem areas as follows:

Optimal Mortgage—Difficult decisions between fixed versus variable, points versus no points, 15-year versus 30-year, are all dependent on a number of personalized assumptions—there are cross over points. Optimal Account to Pay Investment Fees From—Investors Who pay advisory fees often have many accounts which could be used to pay them. If paid from taxable accounts the fees may be deductible or perhaps partially deductible. If paid from retirement accounts the fees will reduce the eventual taxable distributions from those accounts at the price of reduced long-term tax-deferred compounding. There are cross over points. Optimal Beneficiary Designations—Naming beneficiaries who are younger than your spouse can significantly increase long-term tax-deferred compounding. However, your spouse may not have enough to live on should you predecease them. Annuity Optimizer—Optimization is a function of higher cost of the annuity and loss of capital gains benefits versus tax-deferred compounding through later required pay out dates and the ability to annuitize. Optimal Time to Rebalance a Portfolio—The trade off between transaction costs and taxation versus increased volatility/risk and adherence to an investment policy can be optimized. Estate Planning—This is perhaps the most complex financial issue facing individuals because there are such a wide range of possible objectives and a wide range of means to achieve these objectives. This problem shares the basic characteristics of the investment location problem: it is bounded by the tax laws and is therefore optimizable. Optimizing The Use of Stocks Versus Stockfunds—Factors include relative expenses, diversification issues, tax planning (i.e., harvesting losses), step-up in basis issues, charitable gifting, etc. Retirement Optimizer—Answering the reverse of the investment location question, this solution will analyze an investor's portfolio and determine a schedule of optimal distributions from tax-deferred and taxable investment accounts, factoring in liquidity needs, age 70½ minimum required distribution rules, tax basis, etc. Roth IRA Optimizer—Whether or not to convert an existing IRA to a Roth is subject to a number of factors, some of which are qualitative. Education Funding Optimizer—Optimizes a parent's funding alternatives between U-Plans, UTMA accounts, Educational IRAs, Educational Trusts, etc., factoring many issues including taxation, investment performance, financial aid, as well as qualitative factors such as control over investments. Stock Option Optimizer—Employees often own various types of stock options with a variety of restrictions impacted by tax laws and often subject to significant fluctuation in value. The optimizer would present a schedule of which options to buy/exercise/sell and when. Risk tolerance and stock volatility would be factored in. Life Insurance Optimizer—Whether to purchase term or cash value and if cash value, which type is a complicated issue which is optimizable.

Although the invention has been shown and described with respect to illustrative embodiments thereof, various other changes, omissions and additions in the form and detail thereof may be made therein without departing from the spirit and scope of the invention.

Appendix A: Precalculation data processing: @FOpen ‘c:\tanager\multis.txt’.1,FileNum @For i = 1 To ACs @FRead FileNum,EOF,AssetClass[i, 1].AssetDesc[i, 1].AssetCategory[i, 1].TotalAssetsPct[i, 1],ACAssetsTot[i, 1],Appreciation[i, 1],Dividend[i, 1], CapGainstax[i, 1],Yield[i, 1],CGDist[i, 1],TaxBracket[i, 1],Clt_Id,Turnover[i, 1],CurrTax[i, 1],CurrTaxDef[i, 1] @If Turnover[i, 1] = 0.0 @Assign Turnover[i, 1] = Horizon @EndIf @Assign YieldPlus1[i, 1] = 1.0 + Yield[i, 1] @rem debug YieldPlus1[i, 1] + ‘ = ’ + ‘1.0’ + ‘ + ’ + Yield[i, 1] @Assign YieldPlus1[i, 1] = YieldPlus1[i, 1] {circumflex over ( )}Horizon @rem debug YieldPlus1[i, 1] + ‘ = ’ + YieldPlus1[i, 1] + ‘ {circumflex over ( )}’ + Horizon @Assign HorizonMinus1 = Horizon − 1 @Assign DividendPlus1[i, 1] = Dividend[i, 1] + 1.0 @Assign AppreciationPlus1[i, 1] = Appreciation[i, 1] + 1.0 @Assign ValueAfterTaxMult[i, 1] = (Appreciation[i, 1] + (Dividend[i, 1] − (Dividend[i, 1]*TaxBracket[i, 1])) + (CGDist[i, 1] − (CGDist[i, 1] * CapGainstax[i, 1]))) @rem debug ValueAfterTaxMult[i, 1] @Assign ValueAfterTaxMultPlus1[i, 1] = 1.0 + ValueAfterTaxMult[i, 1] @Assign ValueAfterTaxMultPlus1[i, 1] = ValueAfterTaxMultPlus1[i, 1] {circumflex over ( )}Horizon @rem debug ValueAfterTaxMultPlus1[i, 1] @Assign StockRate[i, 1] = Appreciation[i, 1] + Dividend[i, 1] + CGDist[i, 1] @Assign StockRatePlus1[i, 1] = StockRate[i, 1] + 1.0 @Assign StockRatePlus1[i, 1] = StockRatePlus1[i, 1] {circumflex over ( )}Horizon @Assign StockApprRateOnGoing[i, 1] = Appreciation[i, 1] − (Appreciation[i, 1] * CapGainstax[i, 1]) @Assign StockApprRateOnGoingPlus1[i, 1] = StockApprRateOnGoing[i, 1] + 1.0 @Assign StockDivRateOnGoing[i, 1] = Dividend[i, 1] − (Dividend[i, 1] {circumflex over ( )}TaxBracket[i, 1]) @Assign StockDivRateOnGoingPlus1[i, 1] = StockDivRateOnGoing[i, 1] + 1.0 @Assign StockGrowthRateOnGoing[i, 1] = Appreciation[i, 1] + StockDivRateOnGoing[i, 1] @Assign StockGrowthRateOnGoingPlus1[i, 1] = StockGrowthRateOnGoing[i, 1] + 1.0 @Assign BondRateOnGoing[i, 1] + Yield[i, 1] − (Yield[i, 1] * TaxBracket[i, 1]) @debug BondRateOnGoing[i, 1] + ‘ = ’ + Yield[i, 1] + ‘ − (‘ + Yield[i, 1] + ‘ * ’ + TaxBracket[i, 1] + ’)’ @Assign BondRateOnGoingPlus1[i, 1] = BondRateOnGoing[i, 1] + 1.0 @debug BondRateOnGoingPlus1[i, 1] + ‘ = ’ + BondRateOnGoing[i, 1] + ‘+’ + ‘1.0’ @Assign BondRateOnGoingPlus1[i, 1] = BondRateOnGoingPlus1[i, 1] {circumflex over ( )}Horizon @debug BondRateOnGoingPlus1[i, 1] + ‘ = ’ + BondRateOnGoingPlus1[i, 1] + ‘{circumflex over ( )}’ + Horizon @rem debug AssetClass[i, 1] + ‘ ’ + AssetDesc[i, 1] + ‘ ’ + TotalAssetsPol[i, 1] + ‘ ’ + ACAssetsTol[i, 1] + ‘ ’ + Appreciation[i, 1] + ‘ ’ + Dividend[i, 1] + ‘ ’ + CapGainstax[i, 1] + ‘ ’ + Yield[i, 1] + ‘ ’ + AssetCategory[i, 1] + ‘ ’ + CGDist[i, 1] + ‘ ’ + TaxBracket[i, 1] + ‘ ’ + Clt_Id + ‘ ’ + Turnover[i, 1] + ‘ ’ + CurrTax[i, 1] + ‘ ’ + CurrTaxDef[i, 1] @Next | Initialization @rem debug ‘Starting Initialisation...’ @DelFile ‘C:\tanager\results.txt’, 1 @Assign LethalValue = 0.0 @Assign ACsMinus1 = ACs − 1 @Assign Tmax = TotalAssets − TDmax @Assign ValueBest = 0.0 @Do AllocateClasses_prc @Do CurrentValue_prc @Do WriteInitial_prc AllocateClasses_prc @rem {circumflex over ( )}**{circumflex over ( )}PERCENT OF ASSETS IN EACH ASSET CLASS @For i = 1 To ACs @Assign ACAssets[i, 1] = TotalAssets * TotalAssetsPct[i, 1] @rem debug ACAssets[i, 1] + ‘ = ’ + Total Assets + ‘ * ’ + TotalAssetsPct[i, 1] @Next | CurrentValue_prc @rem debug ‘**** DETERMINE VALUE OF CLIENT CURRENT ALLOCATION’ @For i = 1 to ACs @Assign ACT[i, 1] = CurrTax[i, 1] @Assign ACTD[i, 1] = CurrTaxDef[i, 1] @rem debug ACT[i, 1] + ‘ ’ + ACTD[i, 1] @Next | @rem debug ‘Doing ValueForCurrent_prc’ @Do ValueForCurrent_prc @For i = 1 to ACs @Assign ACTCurrBest[i, 1] = ACTBest[i, 1] @Assign ACTDCurrBest[i, 1] = ACTDBest[i, 1] @Assign ACValueCurrBest[i, 1] = ACValueBest[i, 1] @rem debug ACTCurrBest[i, 1] + ‘ ’ + ACTDCurrBest[i, 1] + ‘ ’ + ACValueCurrBest[i, 1] @Next | @Assign ValueCurrBest = ValueBest @rem debug ValueCurrBest @rem debug ‘{circumflex over ( )}**{circumflex over ( )}REINITIALIZE’ @Assign ValueBest = 0.0 @For i = 1 to ACs @If AssetDesc[i, 1] = ‘Municipal’ @Assign ACT[i, 1] = ACTD[i, 1] + ACT[i, 1] @Assign ACTD[i, 1] = 0.0 @EndIf @Clear Value @rem InitArray ACT @rem InitArray ACTD @InitArray ACTBest @InitArray ACTDBest @InitArray ACValueBest WriteInitial_prc @rem {circumflex over ( )}**{circumflex over ( )}WRITE INITIAL GENERATION FILE @FOpen ‘c:\tanager\initgen.txt’, 2, FileNum @rem for k = 1 To 60 @Assign ACinit[1, 1] = CurrTaxDef[i, 1] @Str ACinit[1, 1] , StgNum @Assign initGen = StgNum @For i = 2 To ACs @Assign ACinit[i, 1] = CurrTaxDef[i, 1] @Str ACinit[i, 1] , StgNum @Assign InitGen = InitGen + ‘,’ + StgNum @Next | @Fwrite File Num, InitGen @rem Next k @Fclose FileNum Value Function @Assign Value = 0.1 @rem **** The GA generates values for ACTD, and we calculate ACT. @For j = 1 To ACs @Assign ACT[i, 1] = ACAssets[i, 1] − ACTD[i, 1] @rem debug ACT[i, 1] + ‘ = ’ + ACAssets[i, 1] + ‘ * ’ ACTD[i, 1] @Next | @Do Lethal_prc @Assign Terminate = ‘No’ @IF Value <> LethalValue @rem **** Loop through all Asset Classes @For i = 1 To ACs @rem **** Check for Stock or Bond @If AssetCategory[i, 1] = ‘Stock’ @Do ValueStock_prc @Else @Do ValueBond_prc @EndIf @Assign Value = Value + ACValue[i, 1] @rem debug ‘j = ’ + | + #10 + ‘ACTD[i, 1] = ’ + ACTD[i, 1] + #10 + ‘ACT[i, 1] = ’ + ACT[i, 1] + #10 + ‘Value = ’ + Value + ‘ ValueBest = ’ + ValueBest @Next | @rem debug ‘i = ’ + i + #10 + ‘ACTD[i, 1] = ’ + ACTD[i, 1] + #10 + ‘ACT[i, 1] = ’ + ACT[i, 1] + #10 + ‘Value = ’ + Value + ‘ ValueBest = ’ + ValueBest @IF (Value <> LethalValue) AND (Value > ValueBest)  @Assign ValueBest = Value  @For i = I To ACs @Assign ACTBest[i, 1] = ACT[i, 1] @Assign ACTDBest[i, 1] = ACTD[i, 1] @Assign ACValueBest[i, 1] = ACValue[i, 1]  @Next | @Endif @ENDIF Lethal_prc Procedure @Assign Terminate = ‘No’ @Assign TDTotal = 0.0 @For i = 1 to ACs @If (ACTD[i, 1] < 0) or (ACTD[i, 1] > ACAssets[i, 1]) @Assign Terminate = ‘Yes’ @Else @Assign TDTotal = TDTotal + ACTD[i, 1] @EndIf @Next | @rem if (TaxBracket[i, 1] = 0) and (ACTD[i, 1] <> ACAssets[i, 1])  @rem Assign Value = LethalValue @rem EndIf @If (TDTotal > TDmax) OR (Terminate = ‘Yes’)  @Assign Value = LethalValue @EndIf ValueStock_prc Procedure @rem **** COMPUTE SIMPLE FUTURE VALUE @Assign ACTDBase[i, 1] = ACTD[i, 1] * StockRatePlus1[i, 1] @If Turnover[i, 1] = Horizon @rem ‘{circumflex over ( )}**{circumflex over ( )}TAXABLE STOCKS’ @If OptMethod = ‘Liq’ @rem *{circumflex over ( )}COMPUTE BASE VALUE AT HORIZON @Assign BaseValue[i, 1] = 1+Appreciation[i, 1]+Dividend[i, 1]+CGDist[i, 1] @Assign BaseValue[i, 1] = ACT[i, 1] * BaseValue[i, 1]{circumflex over ( )}Horizon @rem *{circumflex over ( )}COMPUTE TAXABLE CAPITAL GAIN @Assign AppreciationValue[i, 1] = (1+Appreciation[i, 1]+CGDist[i, 1]) @Assign AppreciationValue[i, 1] = ACT[i, 1] * AppreciationValue[i, 1]{circumflex over ( )}Horizon @rem *{circumflex over ( )}COMPUTE CAP GAINS TAX @Assign CapGainOnTaxableStocks[i, 1] = AppreciationValue[i, 1] * CapGainstax[i, 1] @rem {circumflex over ( )}* COMPUTE DIVIDENDS @Assign DividendVal[i, 1] = Dividend * TaxBracket @Assign DividendVal[i, 1] = 1 + Dividend − DividendVal[i, 1] @Assign DividendVal[i, 1] = ACT[i, 1] * DividendVal[i, 1]{circumflex over ( )}Horizon @rem **** COMPUTE ACTUAL VALUE OF TAXABLE STOCKS @Assign ACTValue[i, 1] = AppreciationValue[i, 1] − CapGainOnTaxableStocks[i, 1] + DividendVal[i, 1] @rem debug ‘ ACT[i, 1]: ’ + ACT[i, 1] + #10 + ‘ BaseValue[i, 1]: ’ + BaseValue[i, 1] + #10 + ‘ AppreciationValue[i, 1]; ’ + AppreciationValue[i, 1] + #10 + ‘ CapGainstax[i, 1]: ’ + CapGainstax[i, 1] + #10 + ‘ CapGainOnTaxableStocks[i, 1]]: ’ + CapGainOnTaxableStocks[i, 1] + #10 + ‘ DividendVal[i, 1]: ’ + DividendVal[i, 1] + #10 ‘ ACTValue[i, 1]: ’ + ACTValue[i, 1] @Else @Assign ACTValue[i, 1] = ACT[i, 1] * ValueAfterTaxMultPlus1[i, 1] @EndIf @Else @DO TurnOver_prc @EndIf @rem **** TAX DEFERRED STOCKS @If OptMethod = ‘Liq’ @Assign TaxOnTaxDefStocks[i, 1] = ACTDBase[i, 1] * TaxBracket[i, 1] @Assign ACTDValue[i, 1] = ACTDBase[i, 1] − TaxOnTaxDefStocks[i, 1] @Else @Assign ACTDValue[i, 1] = ACTDBase[i, 1] @Endif @rem **** FINAL VALUE @Assign ACValue[i, 1] = ACTValue[i, 1] + ACTDValue[i, 1] ValueBond_prc Procedure @rem COMPUTE SIMPLE FUTURE VALUE @Assign ACTDBase[i, 1] = ACTD[i, 1] * YieldPlus1[i, 1] @rem **** TAXABLE BONDS @If OptMethod = ‘Liq’ @Assign ACTValue[i, 1] = ACT[i, 1] {circumflex over ( )}BondRateOnGoingPlus1[i, 1] @rem debug i + ‘: ’ + ACTValue[i, 1] + ‘ = ’ + ACT[i, 1] + ‘ * ’ + BondRateOnGoingPlus1[i, 1] @rem Assign ACTTax[i, 1] = (ACTValue[i, 1] − ACT[i, 1]) * TaxBracket[i, 1] @rem Assign ACTValue[i, 1] = ACTValue[i, 1] − ACTTax[i, 1] @Else @Assign ACTValue[i, 1] = ACT[i, 1] * BondRateOnGoingPlus1[i, 1] @EndIf @rem **** TAX DEFERRED BONDS @If OptMethod = ‘Liq’ @Assign ACTDTax[i, 1] = ACTDBase[i, 1] * TaxBracket[i, 1] @Assign ACTDValue[i, 1] = ACTDBase[i, 1] − ACTDTax[i, 1]  @rem debug ACTDTax[i, 1] + ‘ = ’ + ACTDBase[i, 1] + ‘ * ’ + TaxBracket[i, 1]  @rem debug ACTDValue[i, 1] + ‘ = ’ + ACTDBase[i, 1] + ‘ − ’ + ACTDTax[i, 1] @Else @Assign ACTDValue[i, 1] = ACTDBase[i, 1] @EndIf @rem **** FINAL VALUE @Assign ACValue[i, 1] = ACTValue[i, 1] + ACTDValue[i, 1] @rem debug ACValue[i, 1] + ‘ = ’ + ACTValue[i, 1] + ‘ + ’ + ACTDValue[i, 1] 

1. A system, for running on a computer, for determining an investment strategy for an entity with assets in taxable and tax-free accounts, comprising: an account information input component, to accept information regarding said assets in said taxable and tax-free accounts for said entity; an investment selection input component, to accept information regarding a plurality of investments, including an indication of a percentage amount of said assets to invest in each of said plurality of investments; an account amount selection component that selects amounts to invest from said taxable and tax-free accounts randomly or using Genetic Algorithms (GA), wherein said amounts substantially match said indication of a percentage amount to invest in each of said plurality of investments; a time horizon input component, to accept an indication of a time horizon; and a return on investment calculation component, to calculate a return on investment for said entity based on said information regarding said assets, said information regarding a plurality of investments, said indication of a percentage amount, said selected amount to invest from said taxable and said tax-free accounts, and said indication of a time horizon; wherein said account amount selection component determines an amount from said taxable and tax-free accounts in order to produce a maximal after-tax accumulation for said entity at said time horizon.
 2. The system of claim 1 wherein said account amount selection component randomly selects amounts from said taxable and tax-free accounts, and said return on investment calculation component calculates an after-tax accumulation for said entity based on said randomly selected amounts.
 3. The system of claim 2 wherein steps of randomly selecting amounts from said taxable and tax-free accounts, and calculating a return, are performed a plurality of times, and said system outputs selected amounts from said taxable and tax-free accounts which produce a maximal return.
 4. The system of claim 1 wherein said account amount selection component selects an amount from said taxable and tax-free accounts using Genetic Algorithms (GA) in order to produce a maximal return on investment for said entity at said time horizon.
 5. The system of claim 4 further including: a chromosome structure, for use with said Genetic Algorithms, wherein said chromosome structure includes a plurality of values, each value being an indication of an amount from said tax-free accounts to invest in a selected one of said plurality of investments; and said return on investment calculation component calculates an after-tax accumulation for said entity based on said values in said chromosome structure.
 6. The system of claim 1 further including: a personal tax component, to accept information regarding personal tax rates for said entity, wherein said a return on investment calculation component calculates a return on investment for said entity based on said information regarding said personal tax rates.
 7. On a computer system, a method of determining an investment strategy for an entity with assets in taxable and tax-free accounts, said method comprising: receiving information regarding a plurality of investments; receiving information regarding a percentage amount of said assets to invest in each of said plurality of investments; receiving information regarding a time horizon; and for each of said plurality of investments, selecting an amount to invest from said taxable and tax-free accounts randomly or using Genetic Algorithms (GA), wherein said determined amount to invest substantially matches said percentage amount to invest in said investment; wherein said determinations will produce a substantially maximal after-tax accumulation for said entity at said time horizon.
 8. The method of claim 7 wherein said step of determining an amount to invest from said taxable and tax-free accounts includes calculating tax consequences over said time horizon for said entity based on said amounts to invest.
 9. The method of claim 8 wherein said step of determining an amount to invest from said taxable and tax-free accounts further includes: performing sampling steps a plurality of times, said sampling steps comprising: randomly selecting amounts from said tax-free accounts to invest in each of said plurality of investments; determining appropriate amounts from said taxable accounts so that said selected percentage amounts for each of plurality of investments is satisfied; and determining a result if said amounts were invested as selected and determined for said time horizon.
 10. The method of claim 8 wherein said step of determining an amount to invest from said taxable and tax-free accounts further includes: creating a plurality of GA chromosome structures, each GA chromosome structure including a value for each of said plurality of investments, each value being an indication of an amount from said tax-free accounts to invest in said corresponding investment; setting said values in said plurality of GA chromosome structures to initial settings; evaluating fitness of said plurality of GA chromosome structures; selecting at least one of said GA chromosome structures with an optimal fitness; and using said values from said selected GA chromosome structure as amounts from said tax-free accounts to invest in said corresponding investment for said substantially maximal accumulation.
 11. The method of claim 10 further including the step of: calculating an improvement value of said substantially maximal after-tax accumulation based on said determined investment amounts from said taxable and tax-free accounts, as compared to an after-tax accumulation based on said initial settings.
 12. A computer system for determining an optimal investment strategy for an entity with assets in taxable and tax-free accounts, comprising: means for obtaining tax information, account information, account amounts, and time horizon information from said entity; a GA chromosome structure, for indicating an amount to invest in said taxable and tax-free accounts; means for obtaining initial amounts to invest in said taxable and tax-free accounts; means for calculating an after-tax accumulation based on indications in said GA component structure; means for modifying said GA chromosome structure to improve said calculated after-tax accumulation; and means for displaying said resulting after-tax accumulation. 